You are viewing the community [info]code_wtf

Programming WTF [entries|friends|calendar]
Programming WTF

[ website | Programming WTF ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

[13 May 2012|09:58am]
zhengxi
function escapeHTML(s) {
    return s.split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
}

отсюда
15 comments|post comment

Пара говнокодиков [14 Apr 2012|10:00pm]

anubis89
Язык java, мне кажется Oracle надо выпустить java_dolbo_b edition потому что когда я увидел это
public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor
extends AbstractPatternNodeVisitor {
Я выпал в осадок, я понимаю, что переменную и метод можно называть до бесконечности, но где же разум господа разработчики ???

И второй пример, на сей раз VB человек просил помощи у меня на каком то форуме через ЛС.
Private Sub Form_Load()
'загрузка изображения
Dim xx(), yy(), zz()
Dim i As Integer
Dim maxx As Integer
Dim maxy As Integer
Dim minx As Integer
Dim miny As Integer
xx = Array(0#, 1#, 1#, 11#, 11#, 6#, 11#, 1#, 1#, 11#, 11#)
yy = Array(0#, 11#, 1#, 1#, 6#, 11#, 11#, 11#, 1#, 1#, 11#)
zz = Array(0#, 11#, 11#, 11#, 11#, 11#, 6#, 1#, 1#, 1#, 1#)
For i = 1 To 10
x(i) = xx(i) * 1.5
y(i) = yy(i) * 1.5
z(i) = zz(i) * 1.5
x0(i) = xx(i)
y0(i) = yy(i)
z0(i) = zz(i)
Next
maxx = 20
minx = -20
maxy = 20
miny = -20
Picture1.ScaleMode = 0
Picture1.Scale (minx, maxy)-(maxx, miny)
Call Angle(210, 30)
Call Cube(x(), y(), z())
sd = False
End Sub
Ну вот как ему помочь причем ведь он сам не знает что делает сие чудо мысли, выдать мыло и вервку ?

Конечно сори за тупой вопрос, но скорее это крик души, откуда такие нелюди разработчики берутся?
4 comments|post comment

Не замешивайте макароны в торт Наполеон [13 Mar 2012|03:18am]
trailmax
В моем бложике любителей подобного мало, но тут, думаю, люди оценят

SELECT distinct
Register.ID,
Register.Deleted,
case
  when Register.fitted = 0 then '<b><i>'+Register.name+'</i></b>'
  else '<b>'+Register.name+'</b>' end
  when Register.fitted = 0 then '<i>'+Register.name+'</i>'
  else Register.name end +
CASE
  WHEN Register.Deleted = 1 THEN '<font color = red>*</font>' 
  ELSE '' END as name,
Register.Description, 
....
FROM Register
  LEFT JOIN .........


вот такой замечательный проект мне достался в наследство. И в довесок к увиденному, это все на VB.Net 1.1 (да, недавно выпустили 4.5 и сейчас 2012 год)
28 comments|post comment

Это ваше похапе [11 Mar 2012|09:48pm]

dil
if (curlstream->readbuffer.writepos == 0) {
while (CURLM_CALL_MULTI_PERFORM == curl_multi_perform(curlstream->multi, &curlstream->pending));
}


Какой-такой select()? Будем читать, пока не прочтётся! И пофиг на все ваши процессорные ресурсы.

Источник: ext/curl/streams.c
23 comments|post comment

bdsm objective-c [28 Feb 2012|01:54pm]

krypt_lynx
Этот шедевр целен и неразрывен. Для полноты впечатлений - смотреть в редакторе с отключённым переносом строк.
http://pastebin.com/UaTdN6K2

Сюда требовалось добавить новый пункт меню. К счастью, этот код 2 года не используется, проще было переписать с нуля.
5 comments|post comment

reliable replace [27 Feb 2012|09:50am]

nickodimm
http://donottrack.us/application:

$DoNotTrackHeader = "DNT";
$phpHeader = "HTTP_" . strtoupper(str_replace("-", "_", $DoNotTrackHeader));
post comment

Sigh, IP_RECVERR for raw socket was broken [17 Feb 2012|06:53pm]

ximaera
Нет ничего более постоянного, чем временные допущения.

За время, прошедшее с момента выхода третьей версии ядра Linux, все уже освоились с ошибками типа configure: error: --with-linux argument '3.0.0-15-generic' is neither a kernel version string nor a full path, однако предположение, что версия ядра обязательно должна начинаться с "2.", до сих пор вызывают смех и иронию. Определять версию ядра нужно так, как это делают настоящие, опытные программисты. Например, авторы утилиты ping.

$ ping xxx
PING xxx (209.x.x.x) from 192.168.1.15 : 56(84) bytes of data.
WARNING: kernel is not very fresh, upgrade is recommended.
From xxx (209.x.x.x): icmp_seq=2 Destination Net Unreachable
From xxx (209.x.x.x): icmp_seq=3 Destination Net Unreachable
^C
$


Уау, пингу не нравится моё ядро! Но почему? Давайте посмотрим:

                error_pkt = (icp->type != ICMP_REDIRECT &&
                         icp->type != ICMP_SOURCE_QUENCH);
                if (error_pkt) {
                    acknowledge(ntohs(icp1->un.echo.sequence));
                    if (working_recverr) {
                        return 0;
                    } else {
                        static int once;
                        /* Sigh, IP_RECVERR for raw socket
                         * was broken until 2.4.9. So, we ignore
                         * the first error and warn on the second.
                         */
                        if (once++ == 1)
                            fprintf(stderr, "\rWARNING: kernel is not very fresh, upgrade is recommended.\n");
                        if (once == 1)
                            return 0;
                    }
                }


Некогда ping'у нужно было выставлять working_recverr в 0 при версии Linux до 2.4.9. При этом авторы iputils, как настоящие джедаи, решили не полагаться на хипстерские linux/version.h и uname(2) и написали свой костыль для определения версии ядра и его способностей. Прошло 11 лет, костыль слегка покривел, и ping заботливо говорит мне, что моё ядро 3.2.6 не очень свежее, и надо бы обновиться до 2.4.9.

Спасибо ему.
8 comments|post comment

[15 Feb 2012|02:30pm]

tox1derm1st
if(1)
{
if(0)
{
...
}
}
1 comment|post comment

[07 Feb 2012|12:49pm]

tox1derm1st
static int GetNumberOfDoubleElements(){return (17 - 2);}
13 comments|post comment

Над boolean разработчики могут издеваться бесконечно [01 Feb 2012|09:30pm]

hedin
boolean stringtoBoolean(String str) {
if (str.equalsIgnoreCase("TRUE")) {
return true;
}
return false;
}

LoaderUtil.setAnonimized(arg1, arg2, Boolean.toString(translateBoolean(rowMap.get(key1))));
LoaderUtil.setAnonimized(arg1, arg2, Boolean.toString(translateBoolean(rowMap.get(key1))));

...
protected boolean translateBoolean(String b){
if (b == null || b.trim().equalsIgnoreCase(""))
return false;
if(b.trim().equalsIgnoreCase("false"))
return false;
return true;
}
5 comments|post comment

[17 Jan 2012|11:55am]
sassa_nf
s=head;
p=head;
while(s!=null) {
  if (...) {
    p.next=null;
    free(head);
    if (s==head) head=null;
    else head=s;
    break;
  }
  p=s;
  s=s.next;
}
16 comments|post comment

Нашел в коде юного падавана [02 Dec 2011|11:10am]

xumix
Debug.Assert(currentAssemblyDirectory != null, string.Format("currentAss{0}emblyDirectory != null", "ARG0"));
post comment

basename, угу [25 Nov 2011|02:22pm]

redis
В оригинале было на самописном языке, я перевел на Java для понятности:
String fileName = "C:\\Test\\Filename.zip";

String[] tmp = fileName.split("\\\\");
for (String s : tmp) {
	fileName = s;
}
tmp = fileName.split("\\.");
for (String s : tmp) {
	fileName = s;
	break;
}

System.out.println(fileName);
14 comments|post comment

PL-SQL [12 Nov 2011|04:17pm]

n1919
Реальный код в одной разработке, известная на всю страну компания

procedure do_commit
is
begin
  commit;
end;


/**/

WTF ?
11 comments|post comment

Ну, раз уж у нас круглая дата... [11 Nov 2011|11:11am]

yatur
11 ноября самое время поговорить о времени. Вот какой WTF у меня недавно приключился.

// C# Code (modified by hand)
class Search
{
    DateTime _refDate;

    public Search(DateTime refDate) { _refDate = refDate.ToUniversalTime(); }

    public bool InRange( DateTime date, int hoursAgo )
    {
        return (date.ToUniversalTime() - _refDate).TotalHours <= hoursAgo;
    }
}

// Unit test
[TestMethod]
public void TestInRange()
{
   var date = DateTime.Now;
   var search = new Search(date);
   var oldDate = date.AddHours(-99.5);
   Assert.IsTrue( search.InRange( oldDate, 100 ) );
}

Вдруг, откуда не возьмись, маленький комарик получаю в понедельник утром сообщение: build failed, test did not pass. А раньше почти год все нормально было. :) Люди, не используйте DateTime.Now в тестах!

Hint: в прошедший выходной в США перевели часы на час вперед.
7 comments|post comment

logrotate.c [31 Oct 2011|07:00pm]

ximaera
Задача: если в конфигурации имеется команда sharedscripts, то нужно обработать все файлы из массива rotNames в цикле и в конце вызвать, скажем, postrotate-скрипт. Иначе -- вызывать postrotate-скрипт для каждого обрабатываемого файла.

Реализация (авторские отступы сохранены).
    for (j = 0;
     (!(log->flags & LOG_FLAG_SHAREDSCRIPTS) && j < log->numFiles)
     || ((log->flags & LOG_FLAG_SHAREDSCRIPTS) && j < 1); j++) {
    for (i = j;
         ((log->flags & LOG_FLAG_SHAREDSCRIPTS) && i < log->numFiles)
         || (!(log->flags & LOG_FLAG_SHAREDSCRIPTS) && i == j); i++) {
        logHasErrors[i] |=
            rotateSingleLog(log, i, state[i], rotNames[i]);
    }
    if (! ( (logHasErrors[j] && !(log->flags & LOG_FLAG_SHAREDSCRIPTS))
           || (hasErrors && (log->flags & LOG_FLAG_SHAREDSCRIPTS)) ) ) {
        runScript(log->flags & LOG_FLAG_SHAREDSCRIPTS ? log->pattern : log->files[j], log->post);
    }

    }
13 comments|post comment

[19 Sep 2011|06:44pm]

vadimkle
public bool IsCopyOrMovePossible(...) {
    int newParentLevel = ...;
    int sourceSubtreeDeep = ...;
    int finalLevel = newParentLevel + sourceSubtreeDeep;
    return finalLevel < Int32.MaxValue;
}
17 comments|post comment

[13 Sep 2011|02:36pm]

bar_suk
Код ниже используется в процедуре сравнения для сортировки std::sortом

static int ByValue(const double* rec1, const double* rec2) {
double ret = *rec1 - *rec2;
return ret ? 0 : ret > 0 ? 1 : -1;
}

Найдите WTF
72 comments|post comment

Этюд на тему тринарного оператора [12 Sep 2011|10:51pm]

alexeiz
return flag == 1 || flag == 2
       ? true : false;

Перенимайте :)
18 comments|post comment

Elegant php code [10 Sep 2011|04:17pm]

alexander_mikh
У меня есть маленький, но рекордный проект по количеству php говнокода ( 130 тыс строк). Его можно постить сюда целиком (только тошнить быстро начинает), но вот этот вот кусок отличается даже на общем фоне:
Warning! php-code )
Страна должны знать своих героев: Jaladhi Triverdi, компания Indianic.
Главное не сразу понятно как это переписать чтобы не так через жопу было.
Update: Помимо попытки сделать локализацию через жопу, все циклы занимаются заменой HOME/AWAY/DRAFT в строке на соответствующие имена. Секрет спрятан в $final_bet_group = implode('#',$final_bet_group); То есть всем bet_group приснился explode, после чего мы их попарно сравнили и склеили массив в строку.
Эквивалентный по функциональности питоновый код ( вместо циклов):
bet_group=bet['bet_group'].replace("Away",away_bet['bet_name'])
bet_group=bet['bet_group'].replace("Home",home_bet['bet_name'])
7 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]